package com.yckj.activechicken.business.purchase.service;

import com.yckj.activechicken.business.purchase.model.PurApplyBill;
import com.yckj.activechicken.business.purchase.model.vo.PurApplyBillVo;
import com.yckj.activechicken.business.purchase.model.vo.PurApplyTaskVo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * Title:com.yckj.activechicken.business.purchase.service
 * </p>
 * <p/>
 * <p>
 * Description: 描述【采购申请业务处理接口】
 * </p>
 * <p/>
 * <p>
 * Copyright: Copyright (c) 2019
 * </p>
 * <p/>
 * <p>
 * Company: 英才汇硕信息技术有限公司
 * </p>
 *
 * @author zhoujy
 * @version 1.0
 * @created 2020/6/13 10:26
 */
public interface IPurApplyService {
    /**
     * 保存采购申请单
     * @param purApplyBillVo
     * @return
     */
    String addApplyBill(PurApplyBillVo purApplyBillVo);

    /**
     * 多条件查询采购申请单信息
     * @param purApplyBill
     * @return
     */
    List<PurApplyBill> listApplyBill(PurApplyBill purApplyBill);

    /**
     * 通过申请单号删除申请单
     * @param purApplyBill
     * @return
     */
    int delApplyBill(PurApplyBill purApplyBill);

    /**
     * 修改采购申请单
     * @param purApplyBillVo
     */
    void modifyApplyBill(PurApplyBillVo purApplyBillVo);

    /**
     * 查询申请单的用户信息以及货品清单
     * @param purApplyBill
     * @return
     */
    Map<String,Object> queryGoodsBillAndUserInfo(PurApplyBill purApplyBill);

    /**
     * 发起采购申请单审批
     * @param purApplyBill
     * @return
     */
    Map<String,Object> submitApproval(PurApplyBill purApplyBill);

    /**
     * 查询申请单审批待办列表
     * @param purApplyBill
     * @return
     */
    List<PurApplyTaskVo> queryTodoPurApplyList(PurApplyBill purApplyBill);

    /**
     * 采购申请单审批
     * @param purApplyTaskVo
     * @return
     */
    void approvalApply(PurApplyTaskVo purApplyTaskVo);


    /**
     * 分页查询当前用户的审批历史信息，记录信息
     * @param queryMap
     * @return
     */
    List<PurApplyTaskVo> queryApplyApprovalHisList(Map<String,String> queryMap);
}
